home *** CD-ROM | disk | FTP | other *** search
- /*$Author: BCRANE $*/
- /*$Date: 15 Jun 1992 10:52:56 $*/
- /*$Header: W:/sccs/pastsr/mvi.c_v 1.0 15 Jun 1992 10:52:56 BCRANE $*/
- /*$Log: W:/sccs/pastsr/mvi.c_v $
- *
- * Rev 1.0 15 Jun 1992 10:52:56 BCRANE
- * Initial revision.
- */
- /*$Logfile: W:/sccs/pastsr/mvi.c_v $*/
- /*$Modtimes$*/
- /*$Revision: 1.0 $*/
- /*$Workfile: mvi.c $*/
-
-
- /*\
- |*|----====< MVI.C >====----
- |*|
- |*| This little program sends text commands to the MVPROAS DOS
- |*| device driver. After sending a command, the result is reported
- |*| back to the user.
- |*|
- \*/
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
-
- #include <fcntl.h>
- #include <sys\types.h>
- #include <sys\stat.h>
- #include <io.h>
-
- /*\
- |*| global variables
- \*/
-
- char buff[100],*b;
- int proas;
-
- /*\
- |*|----====< Start of execution >====----
- \*/
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- int n;
-
- /* open the device */
-
- if ((proas = open ("MVPROAS",O_RDWR, S_IREAD | S_IWRITE)) == -1) {
- printf ("\acannot open the MVPROAS device!\n");
- exit(0);
- }
- /* report the starting status */
-
- ReportStatus();
-
- /* if there is data on the command line, process it, else stdin */
-
- if (argc > 1) {
-
- /* build the combined string */
-
- n = 1;
- while (n < argc ) {
- strcat (buff,argv[n++]);
- strcat (buff," ");
- }
- strcat (buff,"\n");
-
-
- b = buff;
- while (*b) b++;
- write (proas,buff,b-buff);
- write (proas,"\n",2);
- ReportStatus();
-
- close (proas);
- exit (0);
- }
-
- /* get text from stdin */
-
- while (!feof(stdin)) {
-
- printf (">"); // give the user a prompt
- fgets (buff,100,stdin); // get the next string
- if (buff[0] == 0x0a) // if null, exit to DOS
- break;
- if (buff[0] != '?') { // '?' is used to query the status
- b = buff;
- while (*b) b++;
- write (proas,buff,b-buff);
- write (proas,"\n",2);
- }
- ReportStatus(); // return the state
- }
-
- close (proas);
-
- }
-
-
- /*\
- |*|----====< ReportStatus >====----
- |*|
- |*| This procedure reports the current text message from MVPROAS
- |*|
- \*/
-
- ReportStatus()
- {
- char text[256],*t;
-
- /* if busy, report it till the cows come home (10 seconds max) */
-
- while (1) {
- read(proas,text,256);
-
- t = text;
- while (*t != 0x0a)
- putch (*t++);
- putch (0xd);
- putch (0xa);
-
- read(proas,text,256);
- if (text[0] != 'B')
- break;
- }
-
- }
-
-
- /*\
- |*| end of MVI.C
- \*/
-
-
-